package cn.com.huzo.repository.trade;

import cn.com.huzo.model.entities.trade.ProductionInstructionLinesSuitSizeEntity;
import huzofw.repository.GenericRepository;
import java.util.List;
import java.util.Map;

/**
 * 生产指示书明细-复合款尺码数据访问对象接口。
 *
 * @author 吴旭
 */
public interface ProductionInstructionLinesSuitSizeRepository extends GenericRepository<ProductionInstructionLinesSuitSizeEntity, String> {

    /**
     * 根据生产指示书明细标识取得款的尺码明细
     *
     * @param linesId 明细标识
     * @return 款尺码明细
     */
    List<ProductionInstructionLinesSuitSizeEntity> fetchByParentLinesId(String linesId);

    /**
     * 根据该生产指示书的款号得到对应的产品尺码（全部尺码，有可能不同色有不同的尺码，这里不做区分）
     *
     * @param headerId 生产指示书ID
     * @param styleNo 款号
     * @param productId 产品ID
     * @return 对应的尺码
     */
    List<Map<String, Object>> fetchProductSize(Long headerId, String styleNo, Long productId);

    /**
     * 根据增加新颜色行，增加相应的尺码
     *
     * @param headerId 生产指示ID
     * @return 影响行数
     */
    Integer insertForNewColourLines(Long headerId);

    /**
     * 拷贝尺码后，更对对应的粘贴用明细ID为空
     *
     * @param headerId 生产指示ID
     * @return 影响行数
     */
    Integer updateParentLinesIdForNewColourLines(Long headerId);

    /**
     * 根据生产指示书明细标识，删除对应的套装尺码
     *
     * @param parentLinesId 生产指示书明细标识
     * @return
     */
    Integer deleteByParentLinesId(String parentLinesId);
}
